let str = "let's take leetCode contest";

// function reverse(str) {
//     console.log(str.split('').reverse().join(''))
// }
// reverse(str)


// 输入：s = ["h","e","l","l","o"]
// 输出：["o","l","l","e","h"]
let s = ["h", "e", "l", "l", "o"]
function reverseing(s) {
    let l = -1, r = s.length;
    while (++l < --r) {
        // [s[l], s[r]] = [s[r], s[l]] //双指针
        [s[r], s[l]] = [s[l], s[r]] //双指针
    }
    return s
}
console.log("==>", reverseing(s));


// function test(str) {

//     let temp1 = str.split(" ");
//     // console.log(temp1)


//     let temp2 = temp1.map(item => {
//         // console.log(item.split('').reverse().join(''))
//         return item.split('').reverse().join('')
//     });

//     console.log(temp2)

//     return temp2.join(' ')
// }

// console.log(test(str))

// 557. 反转字符串中的单词 III
// 给定一个字符串，你需要反转字符串中每个单词的字符顺序，同时仍保留空格和单词的初始顺序。

// 示例：

// 输入："Let's take LeetCode contest"
// 输出："s'teL ekat edoCteeL tsetnoc"

var reverseWords = function (s) {
    let temp = s.split(' ')
    // console.log(temp)
    return temp.map(item => {
        // return item.split('').reverse().join('')
        return reverseing(item)
    }).join(' ')
};

var reverseWords1 = function (s) {
    let temp = s.split(' ')
    function reverse(s) {
        s = s.split('')
        let l = -1, r = s.length;
        while (++l < --r) {
            [s[l], s[r]] = [s[r], s[l]]
        }
        return s.join('')
    }
    // console.log(temp)
    return temp.map(item => {
        // return item.split('').reverse().join('')
        return reverse(item)
    }).join(' ')
};